<!DOCTYPE html>
<html lang="en">

<head>
    <meta charset="UTF-8">
    <meta http-equiv="X-UA-Compatible" content="IE=edge">
    <meta name="viewport" content="width=device-width, initial-scale=1.0">
    <title>计算属性的setter和getter</title>
</head>

<body>
    <script src="/js/vue.js"></script>
    <div id="app">
        <!-- 每一个计算属性都包含setter和getter，我们前面的例子都是计算属性的默认用法，
            只是利用了getter来读取。在需要的时候，我们也可以提供一个setter函数 当手动修改计算属性的值时，
            就会触发setter函数，执行setter内部的自定义处理程序。
        -->
        <h2>{{fullName}}</h2>
        <!-- toFixed Number一个方法，把数字转换成字符串，并且保留几位有效小数 -->
        <h2>{{score.toFixed(2)}}</h2>
    </div>

    <script>
        let app = new Vue({
            el: "#app",
            data: {
                msg: 'hello world',
                firstName: "Shane",
                lastName: "He",
                score:100
            },
            computed: {
                // 计算属性的完整用法：setter和getter 传对象进去
                fullName:{//对象  完整方法
                    get(){
                        return  this.firstName + " " + this.lastName
                    },
                    set(newValue){
                        // 当我用计算属性 =  xxx赋值，调用set方法
                        // app.fullName = "kitty Wang"
                        const names = newValue.split(" ")
                        this.firstName = names[0];
                        this.lastName = names[1];
                    }
                }
            }
        })
    </script>
</body>

</html>